//
//  LCMusicPlayer.h
//  LCAudioPlay
//
//  Created by admin on 2017/9/24.
//  Copyright © 2017年 LC. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LCMusicPlayerdefine.h"
#import <MediaPlayer/MediaPlayer.h>
#import <AVFoundation/AVFoundation.h>

// 播放器状态枚举
typedef NS_ENUM(NSUInteger, LCMusicPlayerStatus) {
    LCMusicPlayerStatusPlaying, // 正在播放
    LCMusicPlayerStatusPaused,   // 当前暂停状态
    LCMusicPlayerStatusCut,  //切歌
    LCMusicPlayerStatusLoading // 加载中状态
};

typedef NS_ENUM(NSUInteger, LCMusicListStatus) {
    LCMusicListStatusAllCycle,   // 列表循环
    LCMusicListStatusRandom, // 随机播放
    LCMusicListStatusSingleCycle  // 单曲循环
};

@class JKSongsMessStatus;

@interface LCMusicPlayer : NSObject

INTERFACE_SINGLETON(LCMusicPlayer)

#pragma mark - 属性 -
// 正在播放的歌曲
@property (readonly, nonatomic) JKSongsMessStatus    *playingSong;

// 当前循环播放的歌曲列表
@property (strong, nonatomic) NSArray<JKSongsMessStatus *> *songs;
// 当前选择的歌曲索引
@property (assign, nonatomic) NSInteger    selectedIndex;

// 播放器当前的播放状态
@property (assign, nonatomic)   LCMusicPlayerStatus kstatus;
// 播放器当前的播放状态
@property (assign, nonatomic)   LCMusicListStatus listStatus;
//区分当前播放页的编码
@property (copy,nonatomic)   NSString * valueDistinguish;

//
@property (nonatomic,strong) AVPlayer *avPlayer;//
// 当前播放时间
@property (assign, nonatomic)   float       currentTime;

// 当前播放歌曲的总时间
@property (assign, nonatomic) float       totalTime;

// 当前播放歌曲的进度
@property (assign, nonatomic) float       bufferProgress;

//播放的最近一个内容
@property (nonatomic,strong) JKSongsMessStatus *selectedJKSongsMessStatus;
//播放的历史内容
@property (nonatomic,strong) NSMutableArray *selectedData;
//播放视频的历史内容
@property (nonatomic,strong) NSMutableArray *selectedVideoData;
//下载的内容
@property (nonatomic,strong) NSMutableArray *downloadData;

@property (assign, nonatomic) NSInteger    comeFrome;//1 H5界面的  反之其他值

@property (assign, nonatomic) NSInteger    playingShengJing;//1 正在播放圣经  反之其他值

#pragma mark - 控制 -

// 通过歌曲索引播放歌曲
- (void)playAtIndex:(NSInteger)index isSelectPlay:(BOOL)isSelectIndexPlay;

// 播放音乐
- (void)play;

// 暂停音乐
- (void)pause;
// 停止音乐
- (void)stop;
// 下一曲
- (void)next;

// 上一曲
- (void)prev;

- (void)downloadSong;
- (void)setupAVAudioBackgroundPlay;
@end
